import request from '@/utils/request';

const DEPT_BASE_URL = '/admin/company';

const UnitAPI = {
  /**
   * 获取单位列表
   *
   * @param queryParams 查询参数（可选）
   * @returns 单位树形表格数据
   */
  getList(queryParams?: any) {
    return request<any, UnitVO[]>({
      url: `${DEPT_BASE_URL}/page`,
      method: 'get',
      params: queryParams,
    });
  },

  /**
   * 获取单位表单数据
   *
   * @param id 单位ID
   * @returns 单位表单数据
   */
  getFormData(id: number) {
    return request<any, UnitVO>({
      url: `${DEPT_BASE_URL}/${id}/form`,
      method: 'get',
    });
  },
  /**
   * 获取所有公司树形结构
   * @returns 单位树形结构数据
   */
  getTree(params: any = {}) {
    return request<any, UnitVO[]>({
      url: `${DEPT_BASE_URL}/tree`,
      method: 'get',
      params: params,
    });
  },
  /**
   * 新增单位
   *
   * @param data 单位表单数据
   * @returns 请求结果
   */
  create(data: UnitVO) {
    return request({
      url: `${DEPT_BASE_URL}`,
      method: 'post',
      data: data,
    });
  },

  /**
   * 修改单位
   *
   * @param id 单位ID
   * @param data 单位表单数据
   * @returns 请求结果
   */
  update(data: UnitVO) {
    return request({
      url: `${DEPT_BASE_URL}/update`,
      method: 'post',
      data: data,
    });
  },

  /**
   * 删除单位
   *
   * @param ids 单位ID，多个以英文逗号(,)分隔
   * @returns 请求结果
   */
  deleteByIds(ids: string) {
    return request({
      url: `${DEPT_BASE_URL}/delete/${ids}`,
      method: 'post',
    });
  },

  /**
   * 获取所有公司列表
   *
   * @returns 单位下拉数据源
   */
  getAllList(params: any = {}) {
    return request<any>({
      url: `${DEPT_BASE_URL}/list/all`,
      method: 'get',
      params: params,
    });
  },
};

export default UnitAPI;

/** 单位类型 */
export interface UnitVO {
  /** 创建时间 */
  createTime?: string;
  // 所属区域
  areaId?: number;
  /** 单位ID */
  id?: number;
  /** 单位名称 */
  name?: string;
  /** 单位编号 */
  code?: string;
  /** 修改时间 */
  updateTime?: string;
  /** 创建人 */
  createBy?: string;
  /** 修改人 */
  updateBy?: string;
}
